
// Dirt clump (spawned by spike) --------------------------------------------

ACTOR DirtClump
{
	+NOBLOCKMAP
	+NOTELEPORT
	States
	{
	Spawn:
		TSPK C 20
		Loop
	}
}

// Spike (thrust floor) -----------------------------------------------------

ACTOR ThrustFloor native
{
	Radius 20
	Height 128

	action native A_ThrustRaise();
	action native A_ThrustImpale();
	action native A_ThrustLower();
	action native A_ThrustInitDn();
	action native A_ThrustInitUp();

	States
	{
	ThrustRaising:
		TSPK A 2 A_ThrustRaise
		Loop
	BloodThrustRaising:
		TSPK B 2 A_ThrustRaise
		Loop
	ThrustLower:
		TSPK A 2 A_ThrustLower
		Loop
	BloodThrustLower:
		TSPK B 2 A_ThrustLower
		Loop
	ThrustInit1:
		TSPK A 3
		TSPK A 4 A_ThrustInitDn
		TSPK A -1
		Loop
	BloodThrustInit1:
		TSPK B 3
		TSPK B 4 A_ThrustInitDn
		TSPK B -1
		Loop
	ThrustInit2:
		TSPK A 3
		TSPK A 4 A_ThrustInitUp
		TSPK A 10
		Loop
	BloodThrustInit2:
		TSPK B 3
		TSPK B 4 A_ThrustInitUp
		TSPK B 10
		Loop
	ThrustRaise:
		TSPK A 8 A_ThrustRaise
		TSPK A 6 A_ThrustRaise
		TSPK A 4 A_ThrustRaise
		TSPK A 3 A_SetSolid
		TSPK A 2 A_ThrustImpale
		Loop
	BloodThrustRaise:
		TSPK B 8 A_ThrustRaise
		TSPK B 6 A_ThrustRaise
		TSPK B 4 A_ThrustRaise
		TSPK B 3 A_SetSolid
		TSPK B 2 A_ThrustImpale
		Loop
	}
}

// Spike up -----------------------------------------------------------------

ACTOR ThrustFloorUp : ThrustFloor
{
	+SOLID
	+NOTELEPORT +FLOORCLIP
	States
	{
	Spawn:
		Goto ThrustInit2
	}
}

// Spike down ---------------------------------------------------------------

ACTOR ThrustFloorDown : ThrustFloor
{
	+NOTELEPORT +FLOORCLIP
	+INVISIBLE
	States
	{
	Spawn:
		Goto ThrustInit1
	}
}
